package cn.edu.ccut.refactor;

import org.eclipse.core.resources.IFolder;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.ltk.core.refactoring.RefactoringStatus;
import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
import org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant;
import org.eclipse.ltk.core.refactoring.participants.RenameProcessor;
import org.eclipse.ltk.core.refactoring.participants.SharableParticipants;

/**
 * 
 * @author Bai Yucheng 2008-1-8
 * 
 */
public abstract class AbstractRenameProcessor extends RenameProcessor implements INameUpdating {
	private boolean fUpdateReference;
	private IFolder fDestFolder;
	private boolean isMoveFile;

	public AbstractRenameProcessor() {
	}

	public String getIdentifier() {
		return null;
	}

	public String getProcessorName() {
		return "";
	}

	public boolean isApplicable() throws CoreException {
		return false;
	}

	public RefactoringStatus checkInitialConditions(
			IProgressMonitor iprogressmonitor) throws CoreException,
			OperationCanceledException {
		return null;
	}

	public RefactoringStatus checkFinalConditions(
			IProgressMonitor iprogressmonitor,
			CheckConditionsContext checkconditionscontext)
			throws CoreException, OperationCanceledException {
		return null;
	}

	public RefactoringParticipant[] loadParticipants(
			RefactoringStatus refactoringstatus,
			SharableParticipants sharableparticipants) throws CoreException {
		return new RefactoringParticipant[0];
	}

	public void setUpdateReference(boolean flag) {
		fUpdateReference = flag;
	}

	public boolean isUpdateReference() {
		return fUpdateReference;
	}

	public IFolder getDestFolder() {
		return fDestFolder;
	}

	public void setDestFolder(IFolder ifolder) {
		fDestFolder = ifolder;
	}

	public void setMoveFile(boolean flag) {
		isMoveFile = flag;
	}

	public boolean isMoveFile() {
		return isMoveFile;
	}

}
